import static org.junit.Assert.*;
import junit.framework.JUnit4TestAdapter;
import junit.framework.TestSuite;
import junit.textui.TestRunner;

import org.junit.Before;
import org.junit.Test;


public class TcasTest {
	/**
	 * Runs before every test.
	 * Make sure each test does not interfere with one another.
	 */
	@Before public void setUp() {
		Tcas.initialize();
		Tcas.Cur_Vertical_Sep = 0;
	    Tcas.High_Confidence = false;
	    Tcas.Two_of_Three_Reports_Valid = false; 
	    Tcas.Own_Tracked_Alt = 0;
	    Tcas.Own_Tracked_Alt_Rate = 0;
	    Tcas.Other_Tracked_Alt = 0;
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Up_Separation = 0;
	    Tcas.Down_Separation = 0;
	    Tcas.Other_RAC = 0;
	    Tcas.Other_Capability = 0;
	    Tcas.Climb_Inhibit = 0;
	}
	
	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 1
	 * Purpose: test consistency
	 * Priority: 3
	 */
	@Test public void ALIMTest1() {
	    Tcas.Alt_Layer_Value = 0;
	    assertEquals(400, Tcas.ALIM());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 2
	 * Purpose: test consistency
	 * Priority: 3
	 */
	@Test public void ALIMTest2() {
	    Tcas.Alt_Layer_Value = 1;
	    assertEquals(500, Tcas.ALIM());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 3
	 * Purpose: test consistency
	 * Priority: 3
	 */
	@Test public void ALIMTest3() {
	    Tcas.Alt_Layer_Value = 2;
	    assertEquals(640, Tcas.ALIM());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 4
	 * Purpose: test consistency
	 * Priority: 3
	 */
	@Test public void ALIMTest4() {
	    Tcas.Alt_Layer_Value = 3;
	    assertEquals(740, Tcas.ALIM());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 5
	 * Purpose: test rule conformance
	 * Priority: 3
	 */
	@Test public void Own_Below_ThreatTest1() {
	    Tcas.Own_Tracked_Alt = 500;
	    Tcas.Other_Tracked_Alt = 600;
	    assertTrue(Tcas.Own_Below_Threat());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 6
	 * Purpose: test rule conformance
	 * Priority: 3
	 */
	@Test public void Own_Below_ThreatTest2() {
	    Tcas.Own_Tracked_Alt = 600;
	    Tcas.Other_Tracked_Alt = 500;
	    assertFalse(Tcas.Own_Below_Threat());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 7
	 * Purpose: test boundary value
	 * Priority: 3
	 */
	@Test public void Own_Below_ThreatTest3() {
	    Tcas.Own_Tracked_Alt = 550;
	    Tcas.Other_Tracked_Alt = 550;
	    assertFalse(Tcas.Own_Below_Threat());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 8
	 * Purpose: test rule conformance
	 * Priority: 3
	 */
	@Test public void Own_Above_ThreatTest1() {
	    Tcas.Own_Tracked_Alt = 500;
	    Tcas.Other_Tracked_Alt = 600;
	    assertFalse(Tcas.Own_Above_Threat());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 9
	 * Purpose: test rule conformance
	 * Priority: 3
	 */
	@Test public void Own_Above_ThreatTest2() {
	    Tcas.Own_Tracked_Alt = 600;
	    Tcas.Other_Tracked_Alt = 500;
	    assertTrue(Tcas.Own_Above_Threat());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 10
	 * Purpose: test boundary value
	 * Priority: 3
	 */
	@Test public void Own_Above_ThreatTest3() {
	    Tcas.Own_Tracked_Alt = 550;
	    Tcas.Other_Tracked_Alt = 550;
	    assertFalse(Tcas.Own_Above_Threat());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 11
	 * Purpose: test rule conformance
	 * Priority: 2
	 */
	@Test public void Inhibit_Biased_ClimbTest1() {
	    Tcas.Up_Separation = 500;
	    Tcas.Climb_Inhibit = 0;
	    assertEquals(500, Tcas.Inhibit_Biased_Climb());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 12
	 * Purpose: test rule conformance
	 * Priority: 2
	 */
	@Test public void Inhibit_Biased_ClimbTest2() {
	    Tcas.Up_Separation = 600;
	    Tcas.Climb_Inhibit = 1;
	    assertEquals(700, Tcas.Inhibit_Biased_Climb());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 13
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void Non_Crossing_Biased_ClimbTest1() {
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Own_Tracked_Alt = 700;
	    Tcas.Other_Tracked_Alt = 600;
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Up_Separation = 500;
	    Tcas.Down_Separation = 600;
	    Tcas.Climb_Inhibit = 0;
	    assertFalse(Tcas.Non_Crossing_Biased_Climb());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 14
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void Non_Crossing_Biased_ClimbTest2() {
	    Tcas.Cur_Vertical_Sep = 300;
	    Tcas.Own_Tracked_Alt = 700;
	    Tcas.Other_Tracked_Alt = 600;
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Up_Separation = 500;
	    Tcas.Down_Separation = 600;
	    Tcas.Climb_Inhibit = 0;
	    assertTrue(Tcas.Non_Crossing_Biased_Climb());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 15
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void Non_Crossing_Biased_ClimbTest3() {
	    Tcas.Cur_Vertical_Sep = 400;
	    Tcas.Own_Tracked_Alt = 700;
	    Tcas.Other_Tracked_Alt = 600;
	    Tcas.Alt_Layer_Value = 2;
	    Tcas.Up_Separation = 500;
	    Tcas.Down_Separation = 600;
	    Tcas.Climb_Inhibit = 0;
	    assertFalse(Tcas.Non_Crossing_Biased_Climb());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 16
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void Non_Crossing_Biased_ClimbTest4() {
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Own_Tracked_Alt = 600;
	    Tcas.Other_Tracked_Alt = 700;
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Up_Separation = 500;
	    Tcas.Down_Separation = 600;
	    Tcas.Climb_Inhibit = 0;
	    assertFalse(Tcas.Non_Crossing_Biased_Climb());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 17
	 * Purpose: test boundary value
	 * Priority: 1
	 */
	@Test public void Non_Crossing_Biased_ClimbTest5() {
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Own_Tracked_Alt = 650;
	    Tcas.Other_Tracked_Alt = 650;
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Up_Separation = 500;
	    Tcas.Down_Separation = 600;
	    Tcas.Climb_Inhibit = 0;
	    assertFalse(Tcas.Non_Crossing_Biased_Climb());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 18
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void Non_Crossing_Biased_ClimbTest6() {
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Own_Tracked_Alt = 700;
	    Tcas.Other_Tracked_Alt = 600;
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Up_Separation = 500;
	    Tcas.Down_Separation = 400;
	    Tcas.Climb_Inhibit = 0;
	    assertTrue(Tcas.Non_Crossing_Biased_Climb());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 19
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void Non_Crossing_Biased_ClimbTest7() {
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Own_Tracked_Alt = 600;
	    Tcas.Other_Tracked_Alt = 700;
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Up_Separation = 500;
	    Tcas.Down_Separation = 400;
	    Tcas.Climb_Inhibit = 0;
	    assertFalse(Tcas.Non_Crossing_Biased_Climb());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 20
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void Non_Crossing_Biased_ClimbTest8() {
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Own_Tracked_Alt = 600;
	    Tcas.Other_Tracked_Alt = 700;
	    Tcas.Alt_Layer_Value = 1;
	    Tcas.Up_Separation = 500;
	    Tcas.Down_Separation = 400;
	    Tcas.Climb_Inhibit = 0;
	    assertTrue(Tcas.Non_Crossing_Biased_Climb());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 21
	 * Purpose: test boundary value
	 * Priority: 1
	 */
	@Test public void Non_Crossing_Biased_ClimbTest9() {
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Own_Tracked_Alt = 500;
	    Tcas.Other_Tracked_Alt = 500;
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Up_Separation = 500;
	    Tcas.Down_Separation = 400;
	    Tcas.Climb_Inhibit = 0;
	    assertTrue(Tcas.Non_Crossing_Biased_Climb());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 22
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void Non_Crossing_Biased_DescendTest1() {
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Own_Tracked_Alt = 700;
	    Tcas.Other_Tracked_Alt = 600;
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Up_Separation = 300;
	    Tcas.Down_Separation = 600;
	    Tcas.Climb_Inhibit = 0;
	    assertFalse(Tcas.Non_Crossing_Biased_Descend());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 23
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void Non_Crossing_Biased_DescendTest2() {
	    Tcas.Cur_Vertical_Sep = 300;
	    Tcas.Own_Tracked_Alt = 700;
	    Tcas.Other_Tracked_Alt = 600;
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Up_Separation = 400;
	    Tcas.Down_Separation = 600;
	    Tcas.Climb_Inhibit = 0;
	    assertTrue(Tcas.Non_Crossing_Biased_Descend());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 24
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void Non_Crossing_Biased_DescendTest3() {
	    Tcas.Cur_Vertical_Sep = 400;
	    Tcas.Own_Tracked_Alt = 700;
	    Tcas.Other_Tracked_Alt = 600;
	    Tcas.Alt_Layer_Value = 2;
	    Tcas.Up_Separation = 500;
	    Tcas.Down_Separation = 600;
	    Tcas.Climb_Inhibit = 0;
	    assertFalse(Tcas.Non_Crossing_Biased_Descend());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 25
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void Non_Crossing_Biased_DescendTest4() {
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Own_Tracked_Alt = 600;
	    Tcas.Other_Tracked_Alt = 700;
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Up_Separation = 500;
	    Tcas.Down_Separation = 600;
	    Tcas.Climb_Inhibit = 0;
	    assertTrue(Tcas.Non_Crossing_Biased_Descend());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 26
	 * Purpose: test boundary value
	 * Priority: 1
	 */
	@Test public void Non_Crossing_Biased_DescendTest5() {
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Own_Tracked_Alt = 650;
	    Tcas.Other_Tracked_Alt = 650;
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Up_Separation = 500;
	    Tcas.Down_Separation = 500;
	    Tcas.Climb_Inhibit = 0;
	    assertTrue(Tcas.Non_Crossing_Biased_Descend());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 27
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void Non_Crossing_Biased_DescendTest6() {
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Own_Tracked_Alt = 700;
	    Tcas.Other_Tracked_Alt = 600;
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Up_Separation = 500;
	    Tcas.Down_Separation = 400;
	    Tcas.Climb_Inhibit = 0;
	    assertFalse(Tcas.Non_Crossing_Biased_Descend());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 28
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void Non_Crossing_Biased_DescendTest7() {
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Own_Tracked_Alt = 600;
	    Tcas.Other_Tracked_Alt = 700;
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Up_Separation = 500;
	    Tcas.Down_Separation = 400;
	    Tcas.Climb_Inhibit = 0;
	    assertFalse(Tcas.Non_Crossing_Biased_Descend());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 29
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void Non_Crossing_Biased_DescendTest8() {
	    Tcas.Cur_Vertical_Sep = 300;
	    Tcas.Own_Tracked_Alt = 600;
	    Tcas.Other_Tracked_Alt = 700;
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Up_Separation = 500;
	    Tcas.Down_Separation = 400;
	    Tcas.Climb_Inhibit = 0;
	    assertTrue(Tcas.Non_Crossing_Biased_Descend());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 30
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void Non_Crossing_Biased_DescendTest9() {
	    Tcas.Cur_Vertical_Sep = 400;
	    Tcas.Own_Tracked_Alt = 600;
	    Tcas.Other_Tracked_Alt = 700;
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Up_Separation = 500;
	    Tcas.Down_Separation = 400;
	    Tcas.Climb_Inhibit = 0;
	    assertTrue(Tcas.Non_Crossing_Biased_Descend());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 31
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void Non_Crossing_Biased_DescendTest10() {
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Own_Tracked_Alt = 600;
	    Tcas.Other_Tracked_Alt = 700;
	    Tcas.Alt_Layer_Value = 1;
	    Tcas.Up_Separation = 500;
	    Tcas.Down_Separation = 400;
	    Tcas.Climb_Inhibit = 0;
	    assertFalse(Tcas.Non_Crossing_Biased_Descend());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 32
	 * Purpose: test boundary value
	 * Priority: 1
	 */
	@Test public void Non_Crossing_Biased_DescendTest11() {
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Own_Tracked_Alt = 500;
	    Tcas.Other_Tracked_Alt = 500;
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Up_Separation = 500;
	    Tcas.Down_Separation = 400;
	    Tcas.Climb_Inhibit = 0;
	    assertFalse(Tcas.Non_Crossing_Biased_Descend());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 33
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void alt_sep_test1() {
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Own_Tracked_Alt = 700;
	    Tcas.Other_Tracked_Alt = 600;
	    Tcas.Up_Separation = 500;
	    Tcas.Climb_Inhibit = 0;
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Down_Separation = 600;
	    Tcas.High_Confidence = true;
	    Tcas.Two_of_Three_Reports_Valid = true;
	    Tcas.Own_Tracked_Alt_Rate = 600;
	    Tcas.Other_RAC = 0;
	    Tcas.Other_Capability = 0;
	    assertEquals(Tcas.UNRESOLVED, Tcas.alt_sep_test());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 34
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void alt_sep_test2() {
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Own_Tracked_Alt = 700;
	    Tcas.Other_Tracked_Alt = 600;
	    Tcas.Up_Separation = 500;
	    Tcas.Climb_Inhibit = 0;
	    Tcas.Cur_Vertical_Sep = 300;
	    Tcas.Down_Separation = 600;
	    Tcas.High_Confidence = true;
	    Tcas.Two_of_Three_Reports_Valid = true;
	    Tcas.Own_Tracked_Alt_Rate = 580;
	    Tcas.Other_RAC = 0;
	    Tcas.Other_Capability = 1;
	    assertEquals(Tcas.UNRESOLVED, Tcas.alt_sep_test());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 35
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void alt_sep_test3() {
	    Tcas.Alt_Layer_Value = 2;
	    Tcas.Own_Tracked_Alt = 700;
	    Tcas.Other_Tracked_Alt = 600;
	    Tcas.Up_Separation = 500;
	    Tcas.Climb_Inhibit = 0;
	    Tcas.Cur_Vertical_Sep = 800;
	    Tcas.Down_Separation = 600;
	    Tcas.High_Confidence = true;
	    Tcas.Two_of_Three_Reports_Valid = true;
	    Tcas.Own_Tracked_Alt_Rate = 560;
	    Tcas.Other_RAC = 0;
	    Tcas.Other_Capability = 0;
	    assertEquals(Tcas.UNRESOLVED, Tcas.alt_sep_test());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 36
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void alt_sep_test4() {
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Own_Tracked_Alt = 600;
	    Tcas.Other_Tracked_Alt = 700;
	    Tcas.Up_Separation = 500;
	    Tcas.Climb_Inhibit = 0;
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Down_Separation = 600;
	    Tcas.High_Confidence = true;
	    Tcas.Two_of_Three_Reports_Valid = true;
	    Tcas.Own_Tracked_Alt_Rate = 540;
	    Tcas.Other_RAC = 0;
	    Tcas.Other_Capability = 1;
	    assertEquals(Tcas.UNRESOLVED, Tcas.alt_sep_test());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 37
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void alt_sep_test5() {
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Own_Tracked_Alt = 650;
	    Tcas.Other_Tracked_Alt = 650;
	    Tcas.Up_Separation = 500;
	    Tcas.Climb_Inhibit = 0;
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Down_Separation = 600;
	    Tcas.High_Confidence = true;
	    Tcas.Two_of_Three_Reports_Valid = true;
	    Tcas.Own_Tracked_Alt_Rate = 520;
	    Tcas.Other_RAC = 0;
	    Tcas.Other_Capability = 0;
	    assertEquals(Tcas.UNRESOLVED, Tcas.alt_sep_test());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 38
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void alt_sep_test6() {
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Own_Tracked_Alt = 700;
	    Tcas.Other_Tracked_Alt = 600;
	    Tcas.Up_Separation = 500;
	    Tcas.Climb_Inhibit = 0;
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Down_Separation = 400;
	    Tcas.High_Confidence = true;
	    Tcas.Two_of_Three_Reports_Valid = true;
	    Tcas.Own_Tracked_Alt_Rate = 500;
	    Tcas.Other_RAC = 0;
	    Tcas.Other_Capability = 1;
	    assertEquals(Tcas.UNRESOLVED, Tcas.alt_sep_test());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 39
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void alt_sep_test7() {
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Own_Tracked_Alt = 600;
	    Tcas.Other_Tracked_Alt = 700;
	    Tcas.Up_Separation = 500;
	    Tcas.Climb_Inhibit = 0;
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Down_Separation = 400;
	    Tcas.High_Confidence = true;
	    Tcas.Two_of_Three_Reports_Valid = true;
	    Tcas.Own_Tracked_Alt_Rate = 480;
	    Tcas.Other_RAC = 0;
	    Tcas.Other_Capability = 0;
	    assertEquals(Tcas.UNRESOLVED, Tcas.alt_sep_test());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 40
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void alt_sep_test8() {
	    Tcas.Alt_Layer_Value = 1;
	    Tcas.Own_Tracked_Alt = 600;
	    Tcas.Other_Tracked_Alt = 700;
	    Tcas.Up_Separation = 500;
	    Tcas.Climb_Inhibit = 0;
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Down_Separation = 400;
	    Tcas.High_Confidence = true;
	    Tcas.Two_of_Three_Reports_Valid = true;
	    Tcas.Own_Tracked_Alt_Rate = 460;
	    Tcas.Other_RAC = 0;
	    Tcas.Other_Capability = 1;
	    assertEquals(Tcas.UNRESOLVED, Tcas.alt_sep_test());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 41
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void alt_sep_test9() {
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Own_Tracked_Alt = 500;
	    Tcas.Other_Tracked_Alt = 500;
	    Tcas.Up_Separation = 500;
	    Tcas.Climb_Inhibit = 0;
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Down_Separation = 400;
	    Tcas.High_Confidence = true;
	    Tcas.Two_of_Three_Reports_Valid = true;
	    Tcas.Own_Tracked_Alt_Rate = 440;
	    Tcas.Other_RAC = 0;
	    Tcas.Other_Capability = 0;
	    assertEquals(Tcas.UNRESOLVED, Tcas.alt_sep_test());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 42
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void alt_sep_test10() {
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Own_Tracked_Alt = 700;
	    Tcas.Other_Tracked_Alt = 600;
	    Tcas.Up_Separation = 300;
	    Tcas.Climb_Inhibit = 0;
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Down_Separation = 600;
	    Tcas.High_Confidence = true;
	    Tcas.Two_of_Three_Reports_Valid = true;
	    Tcas.Own_Tracked_Alt_Rate = 420;
	    Tcas.Other_RAC = 0;
	    Tcas.Other_Capability = 1;
	    assertEquals(Tcas.UNRESOLVED, Tcas.alt_sep_test());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 43
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void alt_sep_test11() {
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Own_Tracked_Alt = 700;
	    Tcas.Other_Tracked_Alt = 600;
	    Tcas.Up_Separation = 400;
	    Tcas.Climb_Inhibit = 0;
	    Tcas.Cur_Vertical_Sep = 800;
	    Tcas.Down_Separation = 600;
	    Tcas.High_Confidence = true;
	    Tcas.Two_of_Three_Reports_Valid = true;
	    Tcas.Own_Tracked_Alt_Rate = 400;
	    Tcas.Other_RAC = 0;
	    Tcas.Other_Capability = 0;
	    assertEquals(Tcas.DOWNWARD_RA, Tcas.alt_sep_test());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 44
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void alt_sep_test12() {
	    Tcas.Alt_Layer_Value = 2;
	    Tcas.Own_Tracked_Alt = 700;
	    Tcas.Other_Tracked_Alt = 600;
	    Tcas.Up_Separation = 500;
	    Tcas.Climb_Inhibit = 0;
	    Tcas.Cur_Vertical_Sep = 700;
	    Tcas.Down_Separation = 600;
	    Tcas.High_Confidence = true;
	    Tcas.Two_of_Three_Reports_Valid = true;
	    Tcas.Own_Tracked_Alt_Rate = 380;
	    Tcas.Other_RAC = 0;
	    Tcas.Other_Capability = 1;
	    assertEquals(Tcas.UNRESOLVED, Tcas.alt_sep_test());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 45
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void alt_sep_test13() {
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Own_Tracked_Alt = 600;
	    Tcas.Other_Tracked_Alt = 700;
	    Tcas.Up_Separation = 500;
	    Tcas.Climb_Inhibit = 0;
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Down_Separation = 600;
	    Tcas.High_Confidence = true;
	    Tcas.Two_of_Three_Reports_Valid = true;
	    Tcas.Own_Tracked_Alt_Rate = 360;
	    Tcas.Other_RAC = 0;
	    Tcas.Other_Capability = 0;
	    assertEquals(Tcas.UNRESOLVED, Tcas.alt_sep_test());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 46
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void alt_sep_test14() {
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Own_Tracked_Alt = 650;
	    Tcas.Other_Tracked_Alt = 650;
	    Tcas.Up_Separation = 500;
	    Tcas.Climb_Inhibit = 0;
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Down_Separation = 500;
	    Tcas.High_Confidence = true;
	    Tcas.Two_of_Three_Reports_Valid = true;
	    Tcas.Own_Tracked_Alt_Rate = 340;
	    Tcas.Other_RAC = 0;
	    Tcas.Other_Capability = 1;
	    assertEquals(Tcas.UNRESOLVED, Tcas.alt_sep_test());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 47
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void alt_sep_test15() {
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Own_Tracked_Alt = 700;
	    Tcas.Other_Tracked_Alt = 600;
	    Tcas.Up_Separation = 500;
	    Tcas.Climb_Inhibit = 0;
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Down_Separation = 400;
	    Tcas.High_Confidence = true;
	    Tcas.Two_of_Three_Reports_Valid = true;
	    Tcas.Own_Tracked_Alt_Rate = 320;
	    Tcas.Other_RAC = 0;
	    Tcas.Other_Capability = 0;
	    assertEquals(Tcas.UNRESOLVED, Tcas.alt_sep_test());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 48
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void alt_sep_test16() {
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Own_Tracked_Alt = 600;
	    Tcas.Other_Tracked_Alt = 700;
	    Tcas.Up_Separation = 500;
	    Tcas.Climb_Inhibit = 0;
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Down_Separation = 400;
	    Tcas.High_Confidence = true;
	    Tcas.Two_of_Three_Reports_Valid = true;
	    Tcas.Own_Tracked_Alt_Rate = 300;
	    Tcas.Other_RAC = 0;
	    Tcas.Other_Capability = 1;
	    assertEquals(Tcas.UNRESOLVED, Tcas.alt_sep_test());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 49
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void alt_sep_test17() {
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Own_Tracked_Alt = 600;
	    Tcas.Other_Tracked_Alt = 700;
	    Tcas.Up_Separation = 500;
	    Tcas.Climb_Inhibit = 0;
	    Tcas.Cur_Vertical_Sep = 300;
	    Tcas.Down_Separation = 400;
	    Tcas.High_Confidence = true;
	    Tcas.Two_of_Three_Reports_Valid = true;
	    Tcas.Own_Tracked_Alt_Rate = 280;
	    Tcas.Other_RAC = 0;
	    Tcas.Other_Capability = 0;
	    assertEquals(Tcas.UNRESOLVED, Tcas.alt_sep_test());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 50
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void alt_sep_test18() {
	    Tcas.Alt_Layer_Value = 0;
	    Tcas.Own_Tracked_Alt = 600;
	    Tcas.Other_Tracked_Alt = 700;
	    Tcas.Up_Separation = 500;
	    Tcas.Climb_Inhibit = 0;
	    Tcas.Cur_Vertical_Sep = 800;
	    Tcas.Down_Separation = 400;
	    Tcas.High_Confidence = true;
	    Tcas.Two_of_Three_Reports_Valid = true;
	    Tcas.Own_Tracked_Alt_Rate = 260;
	    Tcas.Other_RAC = 0;
	    Tcas.Other_Capability = 1;
	    assertEquals(Tcas.UNRESOLVED, Tcas.alt_sep_test());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 51
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void alt_sep_test19() {
	    Tcas.Alt_Layer_Value = 1;
	    Tcas.Own_Tracked_Alt = 600;
	    Tcas.Other_Tracked_Alt = 700;
	    Tcas.Up_Separation = 500;
	    Tcas.Climb_Inhibit = 0;
	    Tcas.Cur_Vertical_Sep = 200;
	    Tcas.Down_Separation = 400;
	    Tcas.High_Confidence = true;
	    Tcas.Two_of_Three_Reports_Valid = true;
	    Tcas.Own_Tracked_Alt_Rate = 240;
	    Tcas.Other_RAC = 0;
	    Tcas.Other_Capability = 0;
	    assertEquals(Tcas.UNRESOLVED, Tcas.alt_sep_test());
	}

	/**
	 * @author: kavinyao
	 * @date: 2011-12-21T09:56:27.694000
	 * @version: 0.1
	 * @TCID: 52
	 * Purpose: test rule conformance
	 * Priority: 1
	 */
	@Test public void alt_sep_test20() {
	    Tcas.Alt_Layer_Value = 2;
	    Tcas.Own_Tracked_Alt = 90;
	    Tcas.Other_Tracked_Alt = 100;
	    Tcas.Up_Separation = 500;
	    Tcas.Climb_Inhibit = 0;
	    Tcas.Cur_Vertical_Sep = 700;
	    Tcas.Down_Separation = 400;
	    Tcas.High_Confidence = true;
	    Tcas.Two_of_Three_Reports_Valid = false;
	    Tcas.Own_Tracked_Alt_Rate = 200;
	    Tcas.Other_RAC = 1;
	    Tcas.Other_Capability = 2;
	    assertEquals(Tcas.UPWARD_RA, Tcas.alt_sep_test());
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		TestRunner.run(new JUnit4TestAdapter(TcasTest.class));
	}
}